#!/bin/bash
###
 # @Author: dvlproad
 # @Date: 2023-02-27 14:33:30
 # @LastEditors: dvlproad
 # @LastEditTime: 2023-06-08 20:33:26
 # @Description: 
### 
:<<!
将含蒲公英参数的json文件app_pgyer_info.json,添加到指定的主json文件中，并移入pgyer_updateversion_kit库中

Pgyer_FILE_PATH="../example_packing_info/app_pgyer_info.json"
AllParams_File_PATH="../example_packing_info/app_info.json"
sh ./pgyerParamsJsonFile_deal.sh -pgyerParamsJsonF "${Pgyer_FILE_PATH}" -allParamsJsonF "${AllParams_File_PATH}"
!


# shell 参数具名化
show_usage="args: [-pgyerParamsJsonF, -allParamsJsonF, -needPgyerJsonF, -movePgyerJsonFToDir]\
                                  [--pgyer-params-json-file=, --all-params-json-file=, --need-pgyer-json-file=, --move-pgyer-json-file-to-dir=]"

while [ -n "$1" ]
do
        case "$1" in
                -pgyerParamsJsonF|--pgyer-params-json-file) Pgyer_FILE_PATH=$2; shift 2;;
                -allParamsJsonF|--all-params-json-file) FullJson_File_PATH=$2; shift 2;;
                -needPgyerJsonF|--need-pgyer-json-file) Need_Pgyer_Json_FILE=$2; shift 2;;
                -movePgyerJsonFToDir|--move-pgyer-json-file-to-dir) MOVE_PGYER_JSON_FILE_TO_DIR=$2; shift 2;;
                --) break ;;
                *) echo $1,$2,$show_usage; break ;;
        esac
done


# 当前【shell脚本】的工作目录
# $PWD代表获取当前路径，当cd后，$PWD也会跟着更新到新的cd路径。这个和在终端操作是一样的道理的
CurrentDIR_Script_Absolute="$( cd "$( dirname "$0" )" && pwd )"
#echo "CurrentDIR_Script_Absolute=${CurrentDIR_Script_Absolute}"
#CommonFun_HomeDir_Absolute2=${CurrentDIR_Script_Absolute}/..
CommonFun_HomeDir_Absolute=${CurrentDIR_Script_Absolute%/*} # 使用此方法可以避免路径上有..

if [ ! -f "${CommonFun_HomeDir_Absolute}/a_function.sh" ]; then
    PackageErrorCode=1
    PackageErrorMessage="引入方法文件:《 source ${CommonFun_HomeDir_Absolute}/a_function.sh ${CommonFun_HomeDir_Absolute} 》失败，请检查"
    updatePackageErrorCodeAndMessage ${PackageErrorCode} "${PackageErrorMessage}"
    exit_script
fi
source ${CommonFun_HomeDir_Absolute}/a_function.sh ${CommonFun_HomeDir_Absolute}

printf "正在使用 ${YELLOW}$0 ${NC}脚本，将含蒲公英参数的json文件app_pgyer_info.json,添加到指定的主json文件中，并移入pgyer_updateversion_kit库中${NC}\n"
if [ "${Need_Pgyer_Json_FILE}" == true ] && [ ! -d "${MOVE_PGYER_JSON_FILE_TO_DIR}" ]; then
    PackageErrorCode=1
    PackageErrorMessage="要移动到的位置 MOVE_PGYER_JSON_FILE_TO_DIR 不能为空(即 -movePgyerJsonFToDir 入参不能为空,一般为 PRODUCT_WORKSPACE/pgyer_updateversion_kit/assets/data )"
    updatePackageErrorCodeAndMessage ${PackageErrorCode} "${PackageErrorMessage}"
    exit 1
fi

# 添加pgyer蒲公英参数
function pgyerParamsJsonFile_AddToFullJsonFile_MoveToPgyerPackage() {
    Pgyer_FILE_PATH=$1
    FullJson_File_PATH=$2
    
    Pgyer_FILE_Name=${Pgyer_FILE_PATH##*/}
    if [ "${Pgyer_FILE_Name}" != "app_pgyer_info.json" ]; then
        echo "❌Error:蒲公英参数的json文件名必须是app_pgyer_info.json，请修改!(因为pgyer_updateversion_kit库中已固定读取该文件名)"
        return 1
    fi
    
    #[在shell脚本中验证JSON文件的语法](https://qa.1r1g.com/sf/ask/2966952551/)
    #cat app_info.json
    check_jsonFile_valid ${Pgyer_FILE_PATH}
    if [ $? != 0 ]; then
        return 1
    fi
    
    PackagePgyerParams=$(cat ${Pgyer_FILE_PATH})
    echo "PackagePgyerParams=${PackagePgyerParams}"
    sh ${CommonFun_HomeDir_Absolute}/update_json_file.sh -f "${FullJson_File_PATH}" -k "package_pgyer_params" -v "${PackagePgyerParams}"
    if [ $? != 0 ]; then
        PackageErrorCode=1
        PackageErrorMessage="更新 ${FullJson_File_PATH} 的 package_pgyer_params 失败"
        updatePackageErrorCodeAndMessage ${PackageErrorCode} "${PackageErrorMessage}"
        retun 1
    fi
    
    if [ "${Need_Pgyer_Json_FILE}" == true ]; then
        sh ${CommonFun_HomeDir_Absolute}/app_info_move_in.sh -sf "${Pgyer_FILE_PATH}" -tf "${MOVE_PGYER_JSON_FILE_TO_DIR}/${Pgyer_FILE_Name}"
        if [ $? != 0 ]; then
            PackageErrorCode=1
            PackageErrorMessage="项目中pgyer_updateversion_kit库需要使用的 ${Pgyer_FILE_PATH} 在移入时候失败"
            updatePackageErrorCodeAndMessage ${PackageErrorCode} "${PackageErrorMessage}"
            return 1
        fi
    fi
    
    return 0
}

echo "正在执行命令《 pgyerParamsJsonFile_AddToFullJsonFile_MoveToPgyerPackage \"${Pgyer_FILE_PATH}\" \"${FullJson_File_PATH}\" 》"
pgyerParamsJsonFile_AddToFullJsonFile_MoveToPgyerPackage "${Pgyer_FILE_PATH}" "${FullJson_File_PATH}"








